home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD008b.dsk / STOPWATCH.bas < prev    next >
BASIC Source File  |  2003-06-12  |  4KB  |  138 lines

  1. 5  GOSUB 20000
  2. 10 DLY = 14
  3. 15 LDLY = 1.5
  4. 20  TEXT : HOME 
  5. 100  POKE 33,25
  6. 105  POKE 32,15
  7. 110  HOME 
  8. 112 A = 0
  9. 115 TA = 1
  10. 120 H = 0:M = 0:S = 0:D = 0:Y = 0
  11. 130  GOSUB 1000: REM   PLOT TIME
  12. 200  REM   MAIN LOOP
  13. 210  GOSUB 10000
  14. 220  GOSUB 3000
  15. 230  GOSUB 1000
  16. 240  IF S +M +H +D +Y = 0  AND A < >0  THEN 4000
  17. 250  GOTO 200
  18. 1000  REM   PLOT TIME
  19. 1005  VTAB 2
  20. 1010  PRINT "YEARS=   ";Y;"    "
  21. 1015  PRINT 
  22. 1020  PRINT "DAYS=    ";D;"   "
  23. 1025  PRINT 
  24. 1030  PRINT "HOURS=   ";H;"  "
  25. 1035  PRINT 
  26. 1040  PRINT "MINUTES= ";M;"  "
  27. 1045  PRINT 
  28. 1050  PRINT "SECONDS= ";S;"  "
  29. 1090  RETURN 
  30. 2000  REM   INPUT?
  31. 2010 I =  PEEK( -16384)
  32. 2020  POKE  -16368,0
  33. 2030  IF I = 149  THEN  GOSUB 2100: REM   +
  34. 2040  IF I = 136  THEN  GOSUB 2200: REM   -
  35. 2045  IF I = 204  THEN  GOSUB 2400
  36. 2050  IF I = 141  THEN  GOSUB 2300
  37. 2060  IF I = 160  THEN  GOSUB 8000
  38. 2070  IF I = 155  THEN 9000
  39. 2075  IF I < >211  AND I < >176  THEN  RETURN 
  40. 2080  IF I = 211  THEN  GOSUB 7000
  41. 2085  IF I = 176  THEN  RUN 10
  42. 2090  RETURN 
  43. 2100  IF A < >1  THEN LOOP = DLY -LOOP
  44. 2110 A = 1
  45. 2112  VTAB 12: HTAB 3
  46. 2115  PRINT "-->"
  47. 2120  RETURN 
  48. 2200  IF A < > -1  THEN LOOP = DLY -LOOP
  49. 2210 A =  -1
  50. 2215  VTAB 12: HTAB 3
  51. 2220  PRINT "<--"
  52. 2230  RETURN 
  53. 2300  REM   STOP COLD
  54. 2310 A = 0
  55. 2320  VTAB 12: HTAB 3
  56. 2325  PRINT "   "
  57. 2330  RETURN 
  58. 2400  REM  
  59. 2410 LOOP = LOOP +LDLY
  60. 2420  VTAB 15: HTAB 2: PRINT "LAP TIMES:"
  61. 2422 H$ =  STR$(H): IF H <10  THEN H$ = "0" +H$
  62. 2424 M$ =  STR$(M): IF M <10  THEN M$ = "0" +M$
  63. 2426 S$ =  STR$(S): IF S <10  THEN S$ = "0" +S$
  64. 2428  VTAB 17 +NL:NL = NL +1: IF NL >6  THEN NL = 0
  65. 2430  PRINT Y","D" "H$":"M$":"S$;: CALL  -868: PRINT 
  66. 2450  RETURN 
  67. 3000  REM   ADVANCE TIME
  68. 3005  IF PAUSE = 1  THEN  RETURN 
  69. 3010 S = S +A: IF S > = 0  AND S <60  THEN  RETURN 
  70. 3015 S = S -60
  71. 3017  IF S <0  THEN S = 59
  72. 3020 M = M +A: IF M > = 0  AND M <60  THEN  RETURN 
  73. 3025 M = M -60
  74. 3027  IF M <0  THEN M = 59
  75. 3030 H = H +A: IF H > = 0  AND H <24  THEN  RETURN 
  76. 3035 H = H -24
  77. 3037  IF H <0  THEN H = 23
  78. 3040 D = D +A: IF D > = 0  AND D <365  THEN  RETURN 
  79. 3050 D = D -365: IF D <0  THEN D = 364
  80. 3060 Y = Y +A
  81. 3062  IF A = 0  THEN  RETURN 
  82. 3070  RETURN 
  83. 4000  FOR COUNT = 1 TO 15
  84. 4005  PRINT "<CTRL-G>";
  85. 4010  IF  PEEK( -16384) <128  THEN  NEXT COUNT
  86. 4020  POKE  -16368,0
  87. 4030  RUN 10
  88. 7000  REM   SET
  89. 7010  CALL  -936: VTAB 2
  90. 7015  INPUT "YEARS=   ";Y
  91. 7020  PRINT 
  92. 7030  INPUT "DAYS=    ";D
  93. 7035  PRINT 
  94. 7040  INPUT "HOURS=   ";H
  95. 7045  PRINT 
  96. 7050  INPUT "MINUTES= ";M
  97. 7055  PRINT 
  98. 7060  INPUT "SECONDS= ";S
  99. 7063  CALL  -936: GOSUB 1000
  100. 7065 LOOP = 1
  101. 7067 A = 0:PAUSE = 0
  102. 7068 NL = 0
  103. 7070  RETURN 
  104. 8000  REM   PAUSE
  105. 8010  IF PAUSE = 0  THEN 8100
  106. 8030  VTAB 13: HTAB 4
  107. 8040  PRINT " "
  108. 8050 PAUSE = 0
  109. 8060  RETURN 
  110. 8100  REM   SET PAUSE:
  111. 8120  VTAB 13: HTAB 4
  112. 8130  PRINT "P"
  113. 8140 PAUSE = 1
  114. 8150  RETURN 
  115. 9000  TEXT : CALL  -936: END 
  116. 10000  REM   TIME LOOP
  117. 10010  FOR LOOP = 1 TO DLY
  118. 10011 A = A
  119. 10012 QQ = 1
  120. 10014 A = A:A = A
  121. 10015  GOSUB 2000
  122. 10020  NEXT LOOP
  123. 10999  RETURN 
  124. 20000  REM 
  125. 20010  HOME : PRINT : PRINT "****************************************STOPWATCH - BY DANIEL TOBIAS - MAY, 1982";
  126. 20015  PRINT "****************************************"
  127. 20020  PRINT "COMMANDS:": PRINT : PRINT "RIGHT ARROW: FORWARD"
  128. 20030  PRINT "LEFT ARROW: REVERSE"
  129. 20040  PRINT "RETURN KEY: STOP"
  130. 20050  PRINT "SPACE BAR: PAUSE; HIT AGAIN TO CONTINUE"
  131. 20060  PRINT "0: RESET TO ZERO; STOP"
  132. 20070  PRINT "S: SET TIME"
  133. 20080  PRINT "L: POST LAP TIME (UP TO 7 LAP TIMES        MAY BE DISPLAYED AT ONCE)"
  134. 20085  PRINT "ESC: QUIT"
  135. 20090  PRINT : PRINT "YOU CAN TINKER WITH THE ACCURACY OF THE STOPWATCH BY CHANGING THE VARIABLE"
  136. 20100  PRINT "DLY IN LINE 10, OR BY ADDING OR REMOVINGDUMMY STATEMENTS SUCH AS 'A=A' IN THE"
  137. 20110  PRINT "DELAY LOOP (LINES 10000 THRU 10120)."
  138. 20120  PRINT : PRINT "HIT ANY KEY TO START. ";: GET I$: PRINT : RETURN